package main

import "fmt"

func main() {

	// 定义元素类型为map的切片
	var mapSlice = make([]map[string]int, 8, 8) // 仅仅完成了切片的初始化，还未完成map的初始化
	fmt.Println(mapSlice[0] == nil)             // true
	// mapSlice[0]["aaa"] = 10   // panic

	// 还需要完成内部map元素的初始化
	mapSlice[0] = make(map[string]int, 8)
	mapSlice[0]["aa"] = 100
	fmt.Println(mapSlice)
	fmt.Println("************************")

	// 定义元素类型为切片的map
	var sliceMap = make(map[string][]int, 8) // 只完成了map类型的初始化，还没完成元素值int[]切片的初始化
	v, ok := sliceMap["中国"]
	if ok {
		fmt.Println(v)
	} else {
		sliceMap["中国"] = make([]int, 8, 8) // 没有这一步会报错
		sliceMap["中国"][0] = 100
		sliceMap["中国"][1] = 200
		sliceMap["中国"][2] = 300
	}

	fmt.Println(sliceMap)

}
